#pragma once
#include <OgreSceneManager.h>

#define TERRAIN_FILE_NAME	"terrain.png"
#define FILE_TERRAIN		"terrain_cache"
#define FILE_TERRAIN_EXT	"dat"

// define length unit in the game world
#define WORLD_SIZE	100000.f
#define MIN_LEVEL	-1000.f
#define SEA_LEVEL	0.f
#define MAX_LEVEL	10000.f
#define SKY_LEVEL	10000.f

#define GRASS_LEVEL	(SEA_LEVEL + 500.f - MIN_LEVEL)
#define ROCK_LEVEL	(GRASS_LEVEL + 500.f)
#define FADE_DIST_1	700.f
#define FADE_DIST_2	1300.f

// the size of target (R)
#define TARGET_R	1000.f

// called in the beginning of start scene, put fighter on carrier
void set_start_pos(Ogre::SceneManager* scene_mgr);

// set target position
void place_target(Ogre::SceneManager* sm, const Ogre::Vector3& b);

// hit check of the game target
bool hit_target(const Ogre::Vector3& pos);

// calculate the direction of target according to the flight
Ogre::Vector3 pointer_target(Ogre::Vector3 pos, const Ogre::Quaternion& orientation);

// score = 0;
void reset_score();

// return score;
int show_score();

// ++score;
void increase_score();